package com.yugao.fintech.antelope.pay.common.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yugao.fintech.antelope.pay.model.entity.BillDownload;
import com.yugao.fintech.antelope.pay.model.rqrs.BillDownloadQL;
import com.yugao.fintech.antelope.pay.model.rqrs.BillDownloadRS;
import com.yugao.fintech.antelope.pay.payment.model.rqrs.bill.BillQueryRQ;

import java.util.List;

/**
 * 账单下载
 *

 */
public interface BillService extends IService<BillDownload> {
    /**
     * 分页查询 账单下载
     *
     * @return 返回分页数据
     */
    IPage<BillDownloadRS> pageBillDownload(BillDownloadQL req);

    /**
     * 根据主键查询 账单下载
     *
     * @param id 主键
     * @return 返回记录，没有返回null
     */
    BillDownloadRS getBillDownload(Long id);

    /**
     * 通过id删除 账单下载
     *
     * @param id 主键
     * @return 是否删除成功
     */
    boolean deleteBillDownload(Long id);

    /**
     * 通过id删除 账单下载
     *
     * @param ids 主键集合
     * @return 是否删除成功
     */
    boolean batchDeleteBillDownload(List<Long> ids);

    /**
     * 下载账单
     */
    void downloadBill(BillQueryRQ rq) throws Exception;
}
